Computers and computing devices are becoming more deeply integrated into home and work environments with each passing day. A large portion of the utilization in such environments, especially the home environment, is entertainment oriented. Such use tends to involve large amounts of audio and/or video data. In addition, the home and office environments are becoming increasingly networked. For example, a home personal computer (PC) may be linked, wired or wirelessly, to a home media center, a communications center, and/or other home systems or devices. When such an environment is utilized for entertainment purposes, large amounts of video and/or audio data must typically be transmitted over one or more links of the home network. For example, the entertainment data may be sent from a PC to a media center.
In order to send the best quality data that the network will support, i.e., to assure adequate quality of service (QoS), it is important to be able to determine the bandwidth that is available. In order to determine this, one must identify the bottleneck bandwidth on the network. The term “bottleneck bandwidth” refers to the bandwidth at a point in the network that at a given moment is providing the least amount of bandwidth in the network path. Thus, while most of the network may support a data rate of x kbps, the bottleneck may allow only x/2 kbps. Data sent over a network path including the bottleneck would thus be limited to x/2 kbps.
Techniques have been devised in the past to try to ascertain the bottleneck bandwidth. A technique often referred to as the “packet pair” technique was devised to find bottleneck bandwidth on large networks such as the Internet. This technique involves sending two closely spaced packets sequentially and evaluating the inter-packet timing at the recipient. However, this technique as previously implemented is not well-suited for home networks and the like due to the heavy variations and fluctuations in network conditions in such environments.
Moreover, some packet pair schemes are completely sender based. They force the receiver to send response packets (e.g. ICMP reply or ICMP unreachable) and measure the inter-packet delay between these. This approach assumes many, i.e., that both directions of the path display the same bottleneck bandwidth and the same network conditions. In fact, however, certain connections, such as DSL connections, often have asymmetric bandwidths.
A simple and effective system of bottleneck bandwidth determination is needed to solve these shortcomings and others inherent in prior systems of network bandwidth estimation.